package com.wzq.app.api;

import com.wzq.app.model.BaseModel;
import com.wzq.app.model.CommentModel;
import com.wzq.app.model.EvaModel;
import com.wzq.app.model.RateModel;
import com.wzq.app.model.StudyModel;
import com.wzq.app.model.TeachEveModel;
import com.wzq.app.model.UserInfo;
import com.wzq.app.model.UserListModel;

import java.util.List;
import java.util.Map;

import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PartMap;
import retrofit2.http.Query;
import retrofit2.http.QueryMap;

public interface ApiService {


    /**
     * 注册
     *
     * @param phone
     * @param password
     * @return
     */
    @FormUrlEncoded
    @POST("api/Register")
    Call<BaseModel<UserInfo>> register(@Field("Phone") String phone, @Field("Password") String password);

    /**
     * 注册
     *
     * @param phone
     * @param password
     * @param code
     * @return
     */
    @FormUrlEncoded
    @POST("api/ResetPwd")
    Call<BaseModel<String>> resetPwd(@Field("Phone") String phone, @Field("Password") String password, @Field("Code") String code);

    /**
     * 登录
     *
     * @param password
     * @param password
     * @return
     */
    @FormUrlEncoded
    @POST("app/login")
    Call<BaseModel<UserInfo>> login(@Field("username") String username, @Field("password") String password);

    @POST("app/save")
    Call<BaseModel<String>> save(@QueryMap Map<String, Object> param);

    /**
     * 修改密码
     *
     * @return
     */
    @FormUrlEncoded
    @POST("api/ChangePwd")
    Call<BaseModel<String>> changePassword(@Field("OldPassword") String oldPassword
            , @Field("Password") String password, @Field("ConfirmPassword") String confirmPassword);


    @GET("app/study/list")
    Call<BaseModel<StudyModel>> getStudyList(@QueryMap Map<String, Integer> param);

    /**
     * 获取评分方式
     *
     * @param type
     * @return
     */
    @GET("app/viewlist")
    Call<BaseModel<List<RateModel>>> getRateList(@Query("type") String type);

    /**
     * @param param
     * @return
     */
    @GET("app/listTea")
    Call<BaseModel<UserListModel>> getUserList(@QueryMap Map<String, Integer> param);


    /**
     * 获取学生评价
     *
     * @param id
     * @return
     */
    @GET("/app/list_stu_eva")
    Call<BaseModel<List<EvaModel>>> getStuEva(@Query("id") int id);

    /**
     * 获取学生评价
     *
     * @param id
     * @return
     */
    @GET("/app/list_tea_eva")
    Call<BaseModel<List<EvaModel>>> getTeaEva(@Query("id") int id);


    /**
     * 获取评分区间
     * @return
     */
    @GET("/app/comment_list")
    Call<BaseModel<List<CommentModel>>> getComment();


    /**
     *
     * @param id
     * @return
     */
    @GET("/app/getEvaByUserId")
    Call<BaseModel<List<TeachEveModel>>> getEvaByUserId(@Query("userId") int id);
}